﻿package net.wangit.app.user;

import net.wangit.UserSupport;
import net.wangit.context.ActionContext;
import net.wangit.jdbc.ColumnRow;
import net.wangit.jdbc.DB;
import net.wangit.jdbc.Table;
import net.wangit.support.action.DefaultAction;
import net.wangit.user.config.AUser;
import net.wangit.util.Md5Encoder;

public class SaveUserAction extends DefaultAction {

	public void doAction(DB db, ActionContext ac) throws Exception {
		Table table = (Table) ac.getTables().get(0);
		ColumnRow row = (ColumnRow) table.getRows().get(0);
		// 新增时加密密码（修改时不考虑：密码元素被禁用）
		if (row.isInsertRow()) {
			String password = row.get(AUser.PASSWORD);
			row.set(AUser.PASSWORD, Md5Encoder.encode(password));
		}
		// save
		super.doAction(db, ac);
		// 修改后同步关联数据：用户编号变化时才有同步的必要
		if (row.isUpdateRow()) {
			String newId = row.get(AUser.USER_ID);
			String oldId = row.getPrimaryKey(AUser.USER_ID);
			if (!oldId.equals(newId)) {
				UserSupport.updateUser(db, newId, oldId);
			}
		}

	}

}
